code: func (s *Sublist) Match(subject string) []interface{} {
  	s.RLock()
  	rc, ok := s.cache[subject]
  	s.RUnlock()
  	if ok {
  		return rc
  	}
  
  	tsa := [32]string{}
  	tokens := tsa[:0]
  	start := 0
  	for i := 0; i < len(subject); i++ {
  		if subject[i] == btsep {
  			tokens = append(tokens, subject[start:i])
  			start = i + 1
  		}
  	}
  	tokens = append(tokens, subject[start:])
  	result := make([]interface{}, 0, 4)
  
  	s.Lock()
  	matchLevel(s.root, tokens, &result)
  
  	// Add to our cache
  	s.cache[subject] = result
  	// Bound the number of entries to sublistMaxCache
  	if len(s.cache) > slCacheMax {
  		for k := range s.cache {
  			delete(s.cache, k)
  			break
  		}
  	}
  	s.Unlock()
  
  	return result
  }
docs: // Match will match all entries to the literal subject.
  // It will return a set of results.