add this test as well:

``` 
+    it('should allow scheduling a microtask outside zone only once', async(() {
 +      var zone = new NgZone();
 +      var atMostOneMicrotaskZone = new AtMostOneMicrotaskZone();
 +      var invokedFirst = false;
 +      var invokedSecond = false;
 +      zone.run(() {
 +        atMostOneMicrotaskZone.run(() {
 +          new Future.value('s').then((_) {
 +            invokedFirst = true;
 +          });
 +          new Future.value('s').then((_) {
 +            invokedSecond = true;
 +          });
 +        });
 +      });
 +      microLeap();
 +      expect(invokedFirst && invokedSecond).toEqual(true);
 +    }));
```