code: func DFSPath(t Traversal, eq Equals, a, z T) []T {
  	p := dfsRecursive(t, eq, a, z, []T{})
  	for i := len(p)/2 - 1; i >= 0; i-- {
  		o := len(p) - i - 1
  		p[i], p[o] = p[o], p[i]
  	}
  	return p
  }
docs: // DFSPath returns a path from node a to node z found by performing
  // a depth first traversal. If no path is found, an empty slice is returned.