code: def broaden(self) -> 'List[Language]':
          
          if self._broader is not None:
              return self._broader
          self._broader = [self]
          seen = set(self.to_tag())
          for keyset in self.BROADER_KEYSETS:
              filtered = self._filter_attributes(keyset)
              tag = filtered.to_tag()
              if tag not in seen:
                  self._broader.append(filtered)
                  seen.add(tag)
          return self._broader
docs: Iterate through increasingly general versions of this parsed language tag.
  
          This isn't actually that useful for matching two arbitrary language tags
          against each other, but it is useful for matching them against a known
          standardized form, such as in the CLDR data.
  
          The list of broader versions to try appears in UTR 35, section 4.3,
          "Likely Subtags".
  
          >>> for langdata in Language.get('nn-Latn-NO-x-thingy').broaden():
          ...     print(langdata)
          nn-Latn-NO-x-thingy
          nn-Latn-NO
          nn-NO
          nn-Latn
          nn
          und-Latn
          und