diff --git a/lib/config/presets/internal/auto-generate-replacements.ts b/lib/config/presets/internal/auto-generate-replacements.ts
index 688449e93b6f433efafc64dad2b90a384419a4f8..b904b6bcb0c44bcde289fe30e51eb76831999637 100644
--- a/lib/config/presets/internal/auto-generate-replacements.ts
+++ b/lib/config/presets/internal/auto-generate-replacements.ts
@@ -3,7 +3,7 @@ import type { Preset } from '../types';
 
 export type Replacement = [string[], string];
 
-export interface AutoPackageRules {
+export interface ReplacementRule {
   matchCurrentVersion: string;
   matchDatasources: string[];
   replacements: Replacement[];
@@ -13,39 +13,46 @@ export interface AutoPackageRules {
 export interface PresetTemplate {
   title: string;
   description: string;
-  packageRules: AutoPackageRules;
+  packageRules: ReplacementRule[];
 }
 
-function generatePackageRules({
-  matchCurrentVersion,
-  matchDatasources,
-  replacements,
-  replacementVersion,
-}: AutoPackageRules): PackageRule[] {
+function generatePackageRules(
+  replacementRules: ReplacementRule[]
+): PackageRule[] {
   const rules: PackageRule[] = [];
-  for (const replacement of replacements) {
-    const [matchPackageNames, replacementName] = replacement;
-    rules.push({
+  for (const replacementRule of replacementRules) {
+    const {
       matchCurrentVersion,
       matchDatasources,
-      matchPackageNames,
-      replacementName,
+      replacements,
       replacementVersion,
-    });
+    } = replacementRule;
+    for (const replacement of replacements) {
+      const [matchPackageNames, replacementName] = replacement;
+      rules.push({
+        matchCurrentVersion,
+        matchDatasources,
+        matchPackageNames,
+        replacementName,
+        replacementVersion,
+      });
+    }
   }
   return rules;
 }
 
 export function addPresets(
   presets: Record<string, Preset>,
-  template: PresetTemplate
+  ...templates: PresetTemplate[]
 ): void {
-  const { title, description, packageRules } = template;
-  presets[title] = {
-    description,
-    packageRules: generatePackageRules(packageRules),
-  };
   const ext = presets.all?.extends ?? [];
-  ext.push(`replacements:${title}`);
+  for (const template of templates) {
+    const { title, description, packageRules } = template;
+    presets[title] = {
+      description,
+      packageRules: generatePackageRules(packageRules),
+    };
+    ext.push(`replacements:${title}`);
+  }
   ext.sort();
 }
diff --git a/lib/config/presets/internal/replacements.ts b/lib/config/presets/internal/replacements.ts
index 2e93e4960fd858d76ea6ef9145ee4b362b7101c1..a1a68a9b317a1679d8ae10c3b6fb6db06523834a 100644
--- a/lib/config/presets/internal/replacements.ts
+++ b/lib/config/presets/internal/replacements.ts
@@ -578,12 +578,14 @@ const muiReplacement: Replacement[] = [
 const mui: PresetTemplate = {
   description:
     'The `material-ui` monorepo org was renamed from `@material-ui` to `@mui`.',
-  packageRules: {
-    matchCurrentVersion: '>=4.0.0 <5.0.0',
-    matchDatasources: ['npm'],
-    replacements: muiReplacement,
-    replacementVersion: '5.0.0',
-  },
+  packageRules: [
+    {
+      matchCurrentVersion: '>=4.0.0 <5.0.0',
+      matchDatasources: ['npm'],
+      replacements: muiReplacement,
+      replacementVersion: '5.0.0',
+    },
+  ],
   title: 'material-ui-to-mui',
 };