def format_information(title, artist, album='', index=0):
    """
    Takes in track information and returns everything as a formatted String.

    Args:
        title (str): track title string
        artist (str): track artist string
        album (str): optional track album string
        index (str): optional track number string

    Returns:
        A formatted string of all track information.
    """
    if ' - ' in title:
        split_title = str(title).split(' - ', 1)
        if album:
            if index:
                return '{} - {} - {} {}'.format(split_title[0], album,
                    index, split_title[1])
            else:
                return '{} - {} - {}'.format(split_title[0], album,
                    split_title[1])
        elif index:
            return '{} - {} {}'.format(split_title[0], index, split_title[1])
        else:
            return '{} - {}'.format(split_title[0], split_title[1])
    elif album:
        if index:
            return '{} - {} - {} {}'.format(artist, album, index, title)
        else:
            return '{} - {} - {}'.format(artist, album, title)
    elif index:
        return '{} - {} {}'.format(artist, index, title)
    else:
        return '{} - {}'.format(artist, title)
