code: func (r *Route) MatchContainer(id, name string, labels map[string]string) bool {
  	if r.matchAll() {
  		return true
  	}
  	if r.FilterID != "" && !strings.HasPrefix(id, r.FilterID) {
  		return false
  	}
  	match, err := path.Match(r.FilterName, name)
  	if err != nil || (r.FilterName != "" && !match) {
  		return false
  	}
  	for _, label := range r.FilterLabels {
  		labelParts := strings.SplitN(label, ":", 2)
  		if len(labelParts) > 1 {
  			labelKey := labelParts[0]
  			labelValue := labelParts[1]
  			labelMatch, labelErr := path.Match(labelValue, labels[labelKey])
  			if labelErr != nil || (labelValue != "" && !labelMatch) {
  				return false
  			}
  		}
  	}
  
  	return true
  }
docs: // MatchContainer returns whether the Route is responsible for a given container