code: function runNode(node) {
              var dependencies = [].concat(node.dependencies);
              var hasRejectedDependency = false;
  
              var fulfilledDependencies = dependencies.filter(function (dependencyName) {
                  if (this.hasOwnProperty(dependencyName) === false) {
                      return;
                  }
  
                  if (this[dependencyName].isFulfilled === true || this[dependencyName].isRejected === true) {
                      if (this[dependencyName].isRejected === true) {
                          hasRejectedDependency = true;
                      }
                      return true;
                  }
              }, this);
  
              if (dependencies.length === fulfilledDependencies.length) {
                  var nodeLikeObject = {
                      success : function nodeSuccess(data) {
                          node.fulfill(data);
                      },
                      fail : function nodeFail(error) {
                          node.reject(error);
                      }
                  };
  
                  if (hasRejectedDependency === false) {
                      nodeLikeObject.data = {};
                      fulfilledDependencies.forEach(function fulfilledDependenciesIterator(dependencyName) {
                          nodeLikeObject.data[dependencyName] = this[dependencyName].data;
                      }, this);
                  }
                  else {
                      nodeLikeObject.errors = {};
                      fulfilledDependencies.forEach(function (dependencyName) {
                          nodeLikeObject.errors[dependencyName] = this[dependencyName].error;
                      }, this);
                  }
  
                  node.run(nodeLikeObject);
              }
          }
docs: Checks for a node candidate to run, in order to run this node
  all its preconditions must be met (dependencies completed). after this steps
  pass it creates the appropiete data that will pass to the node and finally
  it executes the node passing a capability object to this step that contains
  the data from its dependencies.
  @property runNode <public> [Function]
  @argument node <required> [FlowNode] the node that you want to execute.