`Edge[][][]` ;) This may be correct, but it certainly needs an API that's easier to work with :) I think a couple of unit tests would help working of the required API here. Perhaps this API should be built on top of this method, but I think a few helper methods that only return a limited subset of this computation would be nice.