Yields (cpath, d) for all dependencies of and including the
        mirte-file <name>, where <d> are the dictionaries from
        the mirte-file at <cpath>

def walk_mirteFiles(name, logger=None):
    """ Yields (cpath, d) for all dependencies of and including the
        mirte-file <name>, where <d> are the dictionaries from
        the mirte-file at <cpath> """
    stack = [(name, find_mirteFile(name, (os.getcwd(),)))]
    loadStack = []
    had = dict()
    while stack:
        name, path = stack.pop()
        if path in had:
            d = had[path]
        else:
            d = _parse_mirteFile(path, logger)
            had[path] = d
        loadStack.append((name, path, d))
        if 'includes' not in d:
            continue
        for include in d['includes']:
            stack.append(
                (include,
                 find_mirteFile(include, (os.path.dirname(path),))))
    had = set()
    for name, path, d in reversed(loadStack):
        if path in had:
            continue
        had.add(path)
        yield name, path, d