If it suits you to call the "all-in-one" alias as an identifier, you could then use $hello().property method without affecting the $1- parameters, ie:
alias hello {
if ($isid) goto $prop
else {
return
}
:hi
< deal with $1- >
halt
:alan
< deal with $1- >
halt
:cat
< deal with $1- >
halt
:world
< deal with $1- >
}
Just a thought. Haven't tried it myself, and apologies for the use of goto
