You probably don’t need to do something that heavy-handed, though. You can just define left and right as new directions (up and down are already defined):
Left is a direction. Right is a direction. Left has opposite right.
and then it might be as simple as using these directions instead of n/s/e/w:
[code]Left is a direction. Right is a direction. Left has opposite right. Right has opposite left.
Attic is a room. Garret is above Attic. Upper Hall is below Attic. Bedroom is left of Upper Hall. Bathroom is right of Upper Hall. Lower Hall is below Upper Hall. Kitchen is left of Lower Hall. Living Room is right of Lower Hall.[/code]
If you want, you can intercept an attempt to go in a compass direction:
Before going when the noun [in this case, the direction] is not navigable:
say "You can only go up, down, left, or right." instead.
or redirect an attempt to go in one of these directions:
Instead of going north: try going up.
Instead of going south: try going down.
Instead of going east: try going right.
Instead of going west: try going left.
You may want to let players use one-letter commands to navigate left and right. If you do, you’ll have to redefine “l”, which is already mapped to “look.” (Players might get annoyed by this, fair warning.)
Understand "r" as right.
Understand the command "l" as something new. Understand "l" as left.
These solutions won’t take care of it if you need to do anything other than go in a direction (“examine left wall” or something like that), but they might be less drastic than jrb’s.