/// <summary>
 /// Convenience method to switch the origin and destination of a transition,
 /// creating a new instance.
 /// </summary>
 /// <param name="stateTransition">an existing state transition</param>
 /// <param name="state">the new state for the origin</param>
 /// <param name="next">the new name for the destination</param>
 /// <returns></returns>
 public static StateTransition SwitchOriginAndDestination(StateTransition stateTransition, IState state, string next)
 {
     return CreateStateTransition(state, stateTransition.Pattern, next);
 }
 /// <summary>
 /// Convenience method to switch the origin and destination of a transition,
 /// creating a new instance.
 /// </summary>
 /// <param name="stateTransition">an existing state transition</param>
 /// <param name="state">the new state for the origin</param>
 /// <param name="next">the new name for the destination</param>
 /// <returns></returns>
 public static StateTransition SwitchOriginAndDestination(StateTransition stateTransition, IState state, string next)
 {
     return(CreateStateTransition(state, stateTransition.Pattern, next));
 }