Actually, if you swap the order of climb tree and U in that command match, the system will automatically detect UP as a valid exit when next to the tree without any objects.
: match "u _;climb tree" {
: if (is_at "crossroads") {
: if (num_items_carried() > 0) {
: print "You're carrying too much!";
: done;}
: else {
: print "You carefully climb up the tree...";
: press_any_key;
: goto "start";
: redescribe;}}}
You may, or may not, want UP signposted as a valid exit when next to the tree... in which case, that order trick is a neat way of fooling the system.