I have a solution that works nicely in irb, but I'd like some help making
it more friendly.  It works well in that using method_missing I have set it
up so that unquoted uncoloned barewords in commaless lists just work:

$  irb -r LispGame
 You are in the living room of a wizard's house.  There is a wizard snoring loudly on the couch.
 There is a stairway going upstairs from here.
 There is a door going west from here.
 You see a whiskeyBottle on the floor.
 You see a bucket on the floor.
 irb(main):001:0> get bucket
 You are now carrying the bucket.
 => nil
 irb(main):002:0> go west
 You are in a beautiful garden.  There is a well in front of you.
 There is a door going east from here.
 You see a chain on the floor.
 You see a frog on the floor.
 => nil
 irb(main):003:0> get chain
 You are now carrying the chain.
 => nil
 irb(main):004:0> go east
 You are in the living room of a wizard's house.  There is a wizard snoring loudly on the couch.
 There is a stairway going upstairs from here.
 There is a door going west from here.
 You see a whiskeyBottle on the floor.
 => nil
 irb(main):005:0> go upstairs
 You are in the attic of the wizard's house.  There is a giant welding torch in the corner.
 There is a stairway going downstairs from here.
 => nil
 irb(main):006:0> weld chain to bucket
 (irb):6: warning: parenthesize argument(s) for future version
 (irb):6: warning: parenthesize argument(s) for future version
 The chain is now securely welded to the bucket.
 => nil
 irb(main):007:0> 

But the problem with this approach is that I can't display a helpful message
when the player enters an invalid command:

irb(main):007:0> help
=> :help
irb(main):008:0> 

I'm trying to come up with a way to have my cake and eat it, too.  Is there
any way to hook into irb and have some code executed every time the prompt
is displayed, like $PROMPT_COMMAND in bash?  That would let me work around 
this . . .