def path_tuple(parser_path, control_path):
    """Returns a tuple structure of strings and Transition objects representing
    the vertices traversed by a path.  Note that the mapping is not injective,
    because a pair of vertices may be joined by multiple edges."""
    return tuple(
        [n.src for n in parser_path] +
        ['sink'] +
        [(n.src, n) for n in control_path]
    )