code: def matches(self, other):
          
          cmp = lambda a, b: (a[0].upper() + a[1:] == b[0].upper() + b[1:]
                              if a and b else a == b)
          this = self.strip_code().strip()
          if isinstance(other, (str, bytes, Wikicode, Node)):
              that = parse_anything(other).strip_code().strip()
              return cmp(this, that)
  
          for obj in other:
              that = parse_anything(obj).strip_code().strip()
              if cmp(this, that):
                  return True
          return False
docs: Do a loose equivalency test suitable for comparing page names.
  
          *other* can be any string-like object, including :class:`.Wikicode`, or
          an iterable of these. This operation is symmetric; both sides are
          adjusted. Specifically, whitespace and markup is stripped and the first
          letter's case is normalized. Typical usage is
          ``if template.name.matches("stub"): ...``.