A bidirectional edge on the graph to be searched.
It must implement Comparable so the
ISearchCallback can properly order the dependencies of a node
(so, typically, the implementations will compare the getTo()
node).
Callback used by the search algorithms.
This interface is responsible for providing the edges of the graph and it can
be notified of some events generated by the search.