def candidate_matches(o, sm_current, list_matches):
    """
    checks if an article shares authors with all other articles in a list
    :param o: examined article
    :param sm_current: list of articles that share authors
    :param list_matches: list of all combinations of two articles that share authors
    :return: True iff o shares articles with all articles in sm_current
    """
    for elem in sm_current:
        if [elem, o] not in list_matches and [o, elem] not in list_matches:
            return False
    return True