def _add(shape, solution):
    """
    Adds all points of the shape to the solution if they are not already
    contained.

    Returns True if all points could be added or False otherwise
    """
    if any([ point in solution for point in shape ]):
        return False

    for point in shape:
        solution.append(point)

    return True