pub fn shortest_path_unweighted( adjacency: &[Vec<usize>], start: usize, target: usize, ) -> Result<Option<Path>, PathError>