import re


def separar_guiones(texto):
    """Separa guiones de primera y última palabra de fragmentos de texto.

    Parameters
    ----------
    texto : str

    Returns
    -------
    str
        Texto con guiones de fragmentos separados de las palabras.
    """
    # Asume ord 8211 ó 8212
    nuevo = re.sub(r'[—–]{1,}', '–', texto)
    nuevo = re.sub(r'(\W)–([A-Za-zÀ-Üà-ü]+)', r'\1– \2', nuevo)

    return re.sub(r'([A-Za-zÀ-Üà-ü]+)–(\W)', r'\1 –\2', nuevo)