code: func (n *Node) BuildURL(pairs ...string) (*url.URL, error) {
  	if len(pairs)%2 != 0 {
  		return nil, fmt.Errorf("pairs expect even number key/val, but get %d", len(pairs))
  	}
  	params := make(map[string]string)
  	var key string
  	for k, v := range pairs {
  		if k%2 == 0 {
  			key = v
  		} else {
  			params[key] = v
  		}
  	}
  	path, err := buildPath(strings.Split(n.pattern, "/"), params)
  	if err != nil {
  		return nil, err
  	}
  	return &url.URL{
  		Path: path,
  	}, nil
  }
docs: // BuildURL will builds a URL for the pattern.