def check_standard(graph, first, second):
    """
    Standard rewiring conditions as in original theory.
    """
    # curiously the conditions for switching unidirectional and bidirectional
    # links are the same for just slightly different reasons
    if first == second:
        return False
    # prevent creation of self-links
    if first[0] == second[1]:
        return False
    if second[0] == first[1]:
        return False
    # check if we would create a parallel edge
    if second[1] in graph[first[0]]:
        return False
    if first[1] in graph[second[0]]:
        return False
    # check if we would create a bidirectional link
    # or cover existing reverse link in double link switching
    if first[0] in graph[second[1]]:
        return False
    if second[0] in graph[first[1]]:
        return False
    return True