has_eulerian_path decides whether the input graph has an Eulerian
path, i.e. a path that passes through every edge of the graph exactly
once, and returns a logical value as a result. eulerian_path returns
a possible Eulerian path, described with its edge and vertex sequence, or
throws an error if no such path exists.
has_eulerian_cycle decides whether the input graph has an Eulerian
cycle, i.e. a path that passes through every edge of the graph exactly
once and that returns to its starting point, and returns a logical value as
a result. eulerian_cycle returns a possible Eulerian cycle, described
with its edge and vertex sequence, or throws an error if no such cycle exists.