<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def add_edge_end_unused(intersection, duplicates, intersections):
 """Add intersection that is ``COINCIDENT_UNUSED`` but on an edge end. This is a helper for :func:`~._surface_intersection.add_intersection`. It assumes that * ``intersection`` will have at least one of ``s == 0.0`` or ``t == 0.0`` * A "misclassified" intersection in ``intersections`` that matches ``intersection`` will be the "same" if it matches both ``index_first`` and ``index_second`` and if it matches the start index exactly Args: intersection (.Intersection):
 An intersection to be added. duplicates (List[.Intersection]):
 List of duplicate intersections. intersections (List[.Intersection]):
 List of "accepted" (i.e. non-duplicate) intersections. """

    found = None
    for other in intersections:
        if (
            intersection.index_first == other.index_first
            and intersection.index_second == other.index_second
        ):
            if intersection.s == 0.0 and other.s == 0.0:
                found = other
                break

            if intersection.t == 0.0 and other.t == 0.0:
                found = other
                break

    if found is not None:
        intersections.remove(found)
        duplicates.append(found)
    intersections.append(intersection)