readded support for recursive for-loops

--HG--
branch : trunk
diff --git a/jinja2/runtime.py b/jinja2/runtime.py
index 8fb3f0b..d734182 100644
--- a/jinja2/runtime.py
+++ b/jinja2/runtime.py
@@ -178,10 +178,11 @@
 class LoopContext(object):
     """A loop context for dynamic iteration."""
 
-    def __init__(self, iterable, enforce_length=False):
+    def __init__(self, iterable, enforce_length=False, recurse=None):
         self._iterable = iterable
         self._next = iter(iterable).next
         self._length = None
+        self._recurse = recurse
         self.index0 = -1
         if enforce_length:
             len(self)
@@ -204,6 +205,12 @@
     def __iter__(self):
         return self
 
+    def __call__(self, iterable):
+        if self._recurse is None:
+            raise TypeError('Tried to call non recursive loop.  Maybe you '
+                            'forgot the "recursive" keyword.')
+        return self._recurse(iterable, self._recurse)
+
     def next(self):
         self.index0 += 1
         return self._next(), self