```python
def repeat_text(phrase: str, times: int, between: str) -> str:
    """
    Repeat the given phrase a specified number of times, separated by a given separator.
    
    Args:
        phrase (str): The phrase to repeat.
        times (int): The number of times to repeat the phrase.
        between (str): The separator to use between repetitions.

    Returns:
        str: The repeated phrase, separated by the separator.
    """
    if times <= 0:
        return ""
    if times == 1:
        return phrase
    if between == "":
        raise ValueError("Separator cannot be empty text.")
    
    # Use a generator expression to build the result string
    result = (phrase + between) * (times - 1)
    return result + phrase
```