     else
       nodes = nodes: []
       pipeline.push nodes
-      
+
       collectNodes = race (i, constructor, selector, options, fin)->
         constructor.some selector, options, (err, instances)->
           if err

        else
          pipeline.push edges: relationships
        next()
        
    @

  nodes: future (pipeline, options, next)->
    last = pipeline.last()
    
    [next, options] = [options, next] unless next
    options or= {}
    
    if last?.nodes
      throw new Error \
        "Can't traverse to nodes from nodes.  You need to select some edges."

      {selector, query, limit, sort, skip, hint} = sharedOptions
      selector = extend {}, selector ? query, sourceId: node.getId()
      options = {limit, sort, skip, hint}
      Relationship.some selector, options, selectorCallback.bind acc, callback

    selectFromEdge =(edge, sharedOptions, acc, callback)->
