def cut_edges(graph):
recursionlimit = getrecursionlimit()<EOL>setrecursionlimit(max(len(graph.nodes())*<NUM_LIT:2>,recursionlimit))<EOL>if '<STR_LIT>' == graph.__class__.__name__:<EOL><INDENT>return _cut_hyperedges(graph)<EOL><DEDENT>pre = {}    <EOL>low = {}    <EOL>spanning_tree = {}<EOL>reply = []<EOL>pre[None] = <NUM_LIT:0><EOL>for each in graph:<EOL><INDENT>if (each not in pre):<EOL><INDENT>spanning_tree[each] = None<EOL>_cut_dfs(graph, spanning_tree, pre, low, reply, each)<EOL><DEDENT><DEDENT>setrecursionlimit(recursionlimit)<EOL>return reply<EOL>
Return the cut-edges of the given graph.

A cut edge, or bridge, is an edge of a graph whose removal increases the number of connected
components in the graph.

@type  graph: graph, hypergraph
@param graph: Graph.

@rtype:  list
@return: List of cut-edges.