This module injects the following methods into `Graph::Easy`:
*_path_is_clear()*

`
``
$graph->_path_is_clear($path);
`

For all points (x,y pairs) in the path, check that the cell is still free.
`$path` points to a list x,y,type pairs as in `[ [x,y,type], [x,y,type], ...]`.

`
``
my $cell = $graph->($edge,$x,$y,$type);
`

Create a cell at `$x,$y` coordinates with type `$type` for the specified
edge.

`
``
$graph->_path_is_clear();
`

For all points (x,y pairs) in the path, check that the cell is still free.
`$path` points to a list of `[ x,y,type, x,y,type, ...]`.

Returns true when the path is clear, false otherwise.

`
``
my $path = my $graph->_trace_path($src,$dst,$edge);
`

Find a free way from source node/group to destination node/group for the
specified edge. Both source and destination need to be placed beforehand.

This module injects the following methods into `Graph::Easy::Node`:
*_near_places()*

`
``
my $node->_near_places();
`

Take a node and return a list of possible placements around it and
prune out already occupied cells. `$d` is the distance from the node
border and defaults to two (for placements). Set it to one for
adjacent cells.

`
``
my $dirs = $node->_shuffle_dir( [ 0,1,2,3 ], $dir);
`

Take a ref to an array with four entries and shuffle them around according to
`$dir`.

`
``
my $dir = $node->_shift($degrees);
`

Return a the `flow()` direction shifted by X degrees to `$dir`.