Yep, I can change that name. 

In a sense I also agree that It would make sense to have it return the modified data instead of mutating it. However, this would not be the case for the actual preprocessor modules. Consider for example a module like this that does nothing:

    module.exports=function(data) {
    }

I think that it would be less error prune for the user if this function would just do nothing, rather than break the whole documentation build process because it has a missing return statement.

Still, I agree that it would be cleaner if the actual function `runPreprocessors` would return the new data rather than mutate it. Maybe a way to get "the best of both worlds" would be for the `runPreprocessors` to first clone the data and then pass it to the preprocessors? I will test this and see what it will look like.