Given a connected, undirected graph and two nodes, s and t, here's a linear-time algorithm to find every edge that, if removed, disconnects s and t:

1. Find all the bridges with Tarjan's algorithm.
2. Find a path from s to t.
3. Return all the edges in the path that are also bridges.

The curious part is that you can choose *any* path from s to t. You can use DFS, BFS, it doesn't matter:
- By definition, only bridges can disconnect two nodes.
- If a bridge's removal disconnects s and t, there is no alternative path around it, so all s-t paths must go through it.