code: func (p *Path) Both(via ...interface{}) *Path {
  	np := p.clone()
  	np.stack = append(np.stack, bothMorphism(nil, via...))
  	return np
  }
docs: // Both updates this path following both inbound and outbound predicates.
  //
  // For example:
  //  // Return the list of nodes that follow or are followed by "B".
  //  //
  //  // Will return []string{"A", "C", "D", "F} if there are the appropriate
  //  // edges from those nodes to "B" labelled "follows", in either direction.
  //  StartPath(qs, "B").Both("follows")