def sort_token_count(token_count_dict):
    """
    Given a dictionary with tokens / words as keys and word count as values,
    return sorted list of tuples (token, count).
    For tokens with same count, they are sorted alphabetically.
    
    :param token_count_dict:
    :return:
    """
    assert isinstance(token_count_dict, dict)
    assert all(isinstance(_, int) for _ in token_count_dict.values())
    token_count = list(token_count_dict.items())
    token_count = sorted(token_count, key=lambda x: x[0])  # break ties using keys (token)
    token_count = sorted(token_count, key=lambda x: x[1], reverse=True)
    return list(token_count)