In the DND sample you can see the following HTML-Structure:
<div class="danddcontainer">
<div class="choose ">
<mdl-repeat class="source langbox mdl-dnd__drag-container"
for-each="language in languages">
...
</mdl-repeat>
</div>
<div class="accept">
<div class="langbox">
<mdl-dropzone class="natural" name="natural"
on-drop-success="addToNaturalLanguages(data)">
<mdl-repeat for-each="language in natural" class="mdl-dnd__drag-container">
...
</mdl-repeat>
</mdl-dropzone>
</div>
</div>
</div>
The first mdl-repeat takes 'languages' from your Application - there is no surrounding component.
The second mdl-repeat is encapsulated in mdl-dropzone. You could assume that it takes natural from mdl-dropzone
(its surrounding component) - you are right with most components. No so with mdl-dropzone.
mdl-dropzone (its class MaterialDropZone) is not ScopeAware. Because of this mdl-repeat looks for the
next ScopeAware parent, can't find one and takes your Application as RootContext.