import unicodedata


def normalize_text(text):
    """ Normaliza um texto para otimizar as buscas.
    - Remove os acentos.
    - Remove os traços.
    - Remove os espaços duplos.
    - Remove os espaços das extremidades.
    - Altera o texto para minúsculo.
    
    Exemplo:
    
    >>> print(normalize_text('São Paulo -     Congonhas'))
    sao paulo congonhas
    >>>

    :param text: Texto que deve ser normalizado.
    :returns: Texto normalizado.
    """
    if not text:
        return text
    text = unicodedata.normalize('NFKD', text)
    text = text.encode('ASCII', 'ignore')
    text = text.decode('utf-8')
    text = text.replace('-', ' ')
    while '  ' in text:
        text = text.replace('  ', ' ')
    text = text.strip().lower()
    return text