async def METHOD_NAME(pair: RootDestinationPair) -> SpecsPaths:
    transitive_targets = await Get(
        TransitiveTargets,
        TransitiveTargetsRequest(
            [pair.root.address], should_traverse_deps_predicate=AlwaysTraverseDeps()
        ),
    )
    adjacent_targets_per_target = await MultiGet(
        Get(
            Targets,
            DependenciesRequest(
                tgt.get(Dependencies), should_traverse_deps_predicate=AlwaysTraverseDeps()
            ),
        )
        for tgt in transitive_targets.closure
    )
    transitive_targets_closure_addresses = (t.address for t in transitive_targets.closure)
    adjacency_lists = dict(zip(transitive_targets_closure_addresses, adjacent_targets_per_target))
    spec_paths = []
    for path in find_paths_breadth_first(
        adjacency_lists, pair.root.address, pair.destination.address
    ):
        spec_path = [address.spec for address in path]
        spec_paths.append(spec_path)
    return SpecsPaths(paths=spec_paths)