# File lib/state_machine/event.rb, line 180
    def transition_for(object, requirements = {})
      requirements[:from] = machine.states.match!(object).name unless custom_from_state = requirements.include?(:from)
      
      guards.each do |guard|
        if match = guard.match(object, requirements)
          # Guard allows for the transition to occur
          from = requirements[:from]
          to = match[:to].values.empty? ? from : match[:to].values.first
          
          return Transition.new(object, machine, name, from, to, !custom_from_state)
        end
      end
      
      # No transition matched
      nil
    end