Implement Breadth-First-Search algorithm with tests