code: function collectDependencies(module) {
      let paths = [];
      function pathsToAcceptingModules(path, root) {
        const requiredMe = parents[root.filename];
        if (module.hot._selfAccepted) {
          paths.push(path.concat(root.filename));
          return;
        }
        if (module.hot._selfDeclined) {
          return;
        }
        for (let next in requiredMe) {
          let parentHotRuntime = requiredMe[next].hot;
          if (parentHotRuntime._acceptedDependencies[root.filename]) {
            paths.push(path.concat(root.filename));
            continue;
          }
          if (parentHotRuntime._declinedDependencies[root.filename]) {
            continue;
          }
          pathsToAcceptingModules(path.concat(root.filename), requiredMe[next]);
        }
      }
      pathsToAcceptingModules([], module);
      return paths;
    }
docs: module is changed, which dependency needs to be reloaded?