///Invoke Break callback.
 public void Break(FlowNode context) {
     if ( breakCall == null ) {
         context.Warn("Called Break without anything to break out from.");
         return;
     }
     breakCall();
 }
 ///Invoke Return callback with provided return value 
 public void Return(object value, FlowNode context) {
     if ( returnData.returnCall == null ) {
         context.Fail("Called Return without anything to return out from.");
         return;
     }
     if ( returnData.returnType != null ) {
         var valueType = value != null ? value.GetType() : null;
         if ( valueType == null || !valueType.RTIsAssignableTo(returnData.returnType) ) {
             context.Fail(string.Format("Return Value is not of expected type '{0}'", returnData.returnType.FriendlyName()));
             return;
         }
     }
     if ( returnData.returnType == null && value != null ) {
         context.Warn("Returning a value when no value is required.");
     }
     returnData.returnCall(value);
 }