def register(key, value=nil, &block)
      block = lambda { value } if value
      @actions[key] = block
    end
def register(key, value=nil, &block)
      block = lambda { value } if value
      @actions[key] = block
    end
Register a callable by key.

 The callable should be given in a block which will be lazily evaluated
 when the action is needed.

 If an action by the given name already exists then it will be
 overwritten.