code: function evaluateState(state, instance, message) {
      var result = false;
      // delegate to child regions first if a non-continuation
      if (message !== state) {
          state.regions.every(function (region) {
              var currentState = instance.getLastKnownState(region);
              if (currentState && evaluateState(currentState, instance, message)) {
                  result = true;
                  return isActive(state, instance); // NOTE: this just controls the every loop; also isActive is a litte costly so using sparingly
              }
              return true; // NOTE: this just controls the every loop
          });
      }
      // if a transition occured in a child region, check for completions
      if (result) {
          if ((message !== state) && isComplete(state, instance)) {
              evaluateState(state, instance, state);
          }
      }
      else {
          // otherwise look for a transition from this state
          var transitions = state.outgoing.filter(function (transition) { return transition.guard(message, instance); });
          if (transitions.length === 1) {
              // execute if a single transition was found
              result = traverse(transitions[0], instance, message);
          }
          else if (transitions.length > 1) {
              // error if multiple transitions evaluated true
              exports.console.error(state + ": multiple outbound transitions evaluated true for message " + message);
          }
      }
      return result;
  }
docs: Evaluates messages against a [[State]], executing a [[Transition]].
  @param state The [[State]].
  @param instance The state machine instance.
  @param message The message to evaluate.
  @returns Returns true if the message caused a [[Transition]].
   @internal