docs: def match_defined(self, el):
          """
          Match defined.
  
          `:defined` is related to custom elements in a browser.
  
          - If the document is XML (not XHTML), all tags will match.
          - Tags that are not custom (don't have a hyphen) are marked defined.
          - If the tag has a prefix (without or without a namespace), it will not match.
  
          This is of course requires the parser to provide us with the proper prefix and namespace info,
          if it doesn't, there is nothing we can do.
          """
  
          name = self.get_tag(el)
          return (
              name.find('-') == -1 or
              name.find(':') != -1 or
              self.get_prefix(el) is not None
          )