code: func (p *pathObject) Intersect(path *pathObject) *pathObject {
  	if path == nil {
  		return p
  	}
  	np := p.clonePath().And(path.path)
  	return p.new(np)
  }
docs: // Intersect filters all paths by the result of another query path.
  //
  // This is essentially a join where, at the stage of each path, a node is shared.
  // Example:
  // 	// javascript
  //	var cFollows = g.V("<charlie>").Out("<follows>")
  //	var dFollows = g.V("<dani>").Out("<follows>")
  //	// People followed by both charlie (bob and dani) and dani (bob and greg) -- returns bob.
  //	cFollows.Intersect(dFollows).All()
  //	// Equivalently, g.V("<charlie>").Out("<follows>").And(g.V("<dani>").Out("<follows>")).All()