For the Viterbi algorithm (#122) it will be convenient for an iterator over a graph's edges always to have the same order, and set() doesn't guarantee this but dict() does. So this replaces the two sets of Edges and Edge ids with a single dict mapping from Edge ids to Edges (which I like better anyway). For symmetry, the same thing is done to Nodes.
For the Viterbi algorithm (#122) it will be convenient for an iterator over a graph's edges always to have the same order, and set() doesn't guarantee this but dict() does. So this replaces the two sets of Edges and Edge ids with a single dict mapping from Edge ids to Edges (which I like better anyway). For symmetry, the same thing is done to Nodes.