run(source, target) now builds BFS path from source to target