code: func (l *Language) MatchingTags() []string {
  	parts := strings.Split(l.Tag, "-")
  	var prefix, matches []string
  	for _, part := range parts {
  		prefix = append(prefix, part)
  		match := strings.Join(prefix, "-")
  		matches = append(matches, match)
  	}
  	return matches
  }
docs: // MatchingTags returns the set of language tags that map to this Language.
  // e.g. "zh-hans-cn" yields {"zh", "zh-hans", "zh-hans-cn"}
  // BUG: This should be computed once and stored as a field on Language for efficiency,
  //      but this would require changing how Languages are constructed.