docs: def _hosts_in_unenumerated_pattern(self, pattern):
          """ Get all host names matching the pattern """
  
          hosts = {}
          # ignore any negative checks here, this is handled elsewhere
          pattern = pattern.replace("!","").replace("&", "")
  
          groups = self.get_groups()
          for group in groups:
              for host in group.get_hosts():
                  if pattern == 'all' or self._match(group.name, pattern) or self._match(host.name, pattern):
                      hosts[host.name] = host
          return sorted(hosts.values(), key=lambda x: x.name)