code: function load(ruleFilePath) {
      //First get the base rules
      var baseRuleLocation = fs.readFileSync(config.BASE_RULES, 'UTF-8');
      var rules = yamlParser.safeLoad(baseRuleLocation);
      if (!ruleFilePath) {
          ruleFilePath = config.DEFAULT_RULES;
      }
  	var includedRuleProfiles = [];
          var ruleDirectory = path.dirname(ruleFilePath); //require all rules to be in same dir
          var ruleFileName = path.basename(ruleFilePath);
          logger.debug("Rule directory is " + ruleDirectory);
          loadRuleFile(ruleFileName, ruleDirectory, includedRuleProfiles);
  	logger.debug("Number of rule files found for " + ruleFileName + " " + includedRuleProfiles.length);
          includedRuleProfiles.reverse();
          includedRuleProfiles.forEach(function (profile) {
              delete profile.sourceFilename; // no longer needed part of hack!
              extend(rules, profile);
          });
          logger.debug("Effective rule set is :\n" + yamlParser.dump(rules));
          return rules;
  }
docs: Loads a profile rule file, resolving all its includes
  All the included rule files are expected to be in the directory
  as the rule file.
  Cyclic includes (e.g. file A includes file B which includes file C which includes file A) are not supported.
  
  @param ruleFilePath
  @returns a merged rule profile object of the profile and all its includes