function checkOptions(userSuppliedOptions) {
    var options = userSuppliedOptions || {};

    // Remove invalid plugins
    if (options.defaultPlugins) {
      options.defaultPlugins    = options.defaultPlugins.filter(filterByPluginExists(defaultOptions.defaultPlugins));
    }

    if (options.defaultFormatters) {
      options.defaultFormatters = options.defaultFormatters.filter(filterByPluginExists(defaultOptions.defaultFormatters));
    }

    return Object.freeze(defaults(options, defaultOptions));
  }
Overrides defaults with user's options

@param  {Object} userSuppliedOptions The user's options
@return {Object}                     The overridden options