A cycle exists in a graph when there is a nonempty path in which only
the first and last nodes are repeated. An example of a cycle is: (Node1 - Node2 - Node3 -
Node1).
A cycle cannot traverse the same edge twice. For example, the cycle (Node1 - Node2 -
Node1) in an undirected graph only exists if there is more than one edge connecting Node1
and Node2. By this definition, self-loops count as cycles, though they cannot be part of any
larger cycles.