In general I find the existence of `_replacementReferences` to be confusing how the second parameter is an array that includes extensions whereas in `_hashFiles` the second parameter is an array that excludes extensions. I think I'll change those methods so that the parameter is an object whose keys make it clear what the different arrays mean