code: func findAllInternal(node *html.Node, matcher Matcher, searchNested bool) []*html.Node {
  	matched := []*html.Node{}
  
  	if matcher(node) {
  		matched = append(matched, node)
  
  		if !searchNested {
  			return matched
  		}
  	}
  
  	for c := node.FirstChild; c != nil; c = c.NextSibling {
  		found := findAllInternal(c, matcher, searchNested)
  		if len(found) > 0 {
  			matched = append(matched, found...)
  		}
  	}
  	return matched
  }
docs: // findAllInternal encapsulates the node tree traversal