code: def _filter_name(name):
      
      # Remove if length 3 or less
      if len(name) <= 3:
          return False
      # Remove if starts with IL-
      if name.startswith('IL-'):
          return False
      lowname = name.lower()
      # Remove if contains certain sequences
      if any(c in lowname for c in STOP_SUB):
          return False
      # Remove if (case-insensitive) exact match to stoplist
      if lowname in STOPLIST:
          return False
      comps = re.split('[ -]', lowname)
      # Remove if just single character + digits separated by spaces or hyphens (or the word compound)
      if all(c.isdigit() or len(c) == 1 or c == 'compound' for c in comps):
          return False
      # Remove if 3 or fewer letters with 2 or fewer digits
      if len(comps) == 2 and len(comps[0]) <= 3 and comps[0].isalpha() and len(comps[1]) <= 3 and comps[1].isdigit():
          return False
      # Remove if just greek characters and numbrs
      if re.match('^[Α-Ωα-ω0-9]+$', name):
          return False
      # Filter registry numbers? No real size benefit in DAWG.
      # if REG_RE.search(name):
      #     keep = False
      # Handle this at the token level
      # if name.endswith(' derivative') or name.endswith(' analog') or name.endswith(' solution'):
      #     keep = False
      # Filter this after matching and expanding boundaries
      # if name.startswith('-') or name.endswith('-'):
      #     keep = False
      # Filter this after matching and expanding boundaries
      # if not bracket_level(name) == 0:
      #     print(name)
      return True
docs: Filter words when adding to Dictionary. Return True if name should be added.