def path_dictionary(path_dict):
    """Creates a dictionary listing all possible types of cells"""
    # Cells which are dead ends.
    path_dict[(False, False, True, False)] = 0
    path_dict[(False, False, False, True)] = 0
    path_dict[(True, False, False, False)] = 0
    path_dict[(False, True, False, False)] = 0
    # Cells which have one direction to traverse.
    path_dict[(False, True, True, False)] = 1
    path_dict[(False, False, True, True)] = 1
    path_dict[(True, False, False, True)] = 1
    path_dict[(True, True, False, False)] = 1
    path_dict[(True, False, True, False)] = 1
    path_dict[(False, True, False, True)] = 1
    # Cells which have two directions to traverse.
    path_dict[(True, False, True, True)] = 2
    path_dict[(True, True, True, False)] = 2
    path_dict[(False, True, True, True)] = 2
    path_dict[(True, True, False, True)] = 2
    # Cells which have three directions to traverse.
    path_dict[(True, True, True, True)] = 3
    return(path_dict)