the infinite loops created by circular includes are terminated with includeHistory, not visitedElements