BFS finds shortest path when every edge has equal weight. Dijkstra is required when edges have positive weights that differ. Reach for BFS first; only graduate to Dijkstra if weights matter.
Level-order tree traversal: queue root, pop, push children.
Shortest path in unweighted graph: BFS from source; first time you hit target is the answer.
Word ladder (Bacon number): BFS over word mutations.
queue <- source
pop, push neighbors, mark distance
first time target popped -> shortest distance found
Equal-weight edges? BFS. Different weights? Dijkstra. Negative weights? Bellman-Ford.