def call(object, context = {}, *args, &block)
      if @branch.matches?(object, context)
        run_methods(object, context, 0, *args, &block)
        true
      else
        false
      end
    end
def call(object, context = {}, *args, &block)
      if @branch.matches?(object, context)
        run_methods(object, context, 0, *args, &block)
        true
      else
        false
      end
    end
Runs the callback as long as the transition context matches the branch
 requirements configured for this callback.  If a block is provided, it
 will be called when the last method has run.

 If a terminator has been configured and it matches the result from the
 evaluated method, then the callback chain should be halted.