Currently, feeding a circular object to JSONSelect means it'll recurse until the call stack is exceeded. Keeping track on which objects has been traversed and protecting against circular references (i.e. not traversing objects that have already been traversed) would prevent this from happening.
For an example of how it can be done, you can look at node's util.inspect (though you probably already know about it, I bet ;) ).
Added support for circular objects in `forEach`; solves issue #28.
same issue here! thx for this commit!