code: func (t *Trie) Parse(pattern string) *Node {
  	if strings.Contains(pattern, "//") {
  		panic(fmt.Errorf(`multi-slash exist: "%s"`, pattern))
  	}
  	_pattern := strings.TrimPrefix(pattern, "/")
  	if !t.caseSensitive {
  		_pattern = strings.ToLower(_pattern)
  	}
  	node := parsePattern(t.root, strings.Split(_pattern, "/"))
  	if node.pattern == "" {
  		node.pattern = pattern
  	}
  	return node
  }
docs: // Parse will parse the pattern and returns the endpoint node for the pattern.
  //
  //  trie := New()
  //  node1 := trie.Parse("/a")
  //  node2 := trie.Parse("/a/b")
  //  node3 := trie.Parse("/a/b")
  //  // node2.parent == node1
  //  // node2 == node3