code: func parsePattern(parent *Node, segments []string) *Node {
  	segment := segments[0]
  	segments = segments[1:]
  	child := parseSegment(parent, segment)
  	if len(segments) == 0 {
  		child.endpoint = true
  		return child
  	}
  	return parsePattern(child, segments)
  }
docs: // parsePattern support multi pattern