diff --git a/packages/go_router/CHANGELOG.md b/packages/go_router/CHANGELOG.md
index b125525..8de1b56 100644
--- a/packages/go_router/CHANGELOG.md
+++ b/packages/go_router/CHANGELOG.md
@@ -1,4 +1,6 @@
-## NEXT
+## 5.0.1
+
+- Allows ShellRoute to have child ShellRoutes (flutter/flutter#111981)
 
 ## 5.0.0
 
diff --git a/packages/go_router/lib/src/route.dart b/packages/go_router/lib/src/route.dart
index 14800d2..9920cce 100644
--- a/packages/go_router/lib/src/route.dart
+++ b/packages/go_router/lib/src/route.dart
@@ -439,8 +439,9 @@
         navigatorKey = navigatorKey ?? GlobalKey<NavigatorState>(),
         super._() {
     for (final RouteBase route in routes) {
-      assert(route is GoRoute);
-      assert((route as GoRoute).parentNavigatorKey == null);
+      if (route is GoRoute) {
+        assert(route.parentNavigatorKey == null);
+      }
     }
   }
 
diff --git a/packages/go_router/pubspec.yaml b/packages/go_router/pubspec.yaml
index 5c67cb6..0e1074c 100644
--- a/packages/go_router/pubspec.yaml
+++ b/packages/go_router/pubspec.yaml
@@ -1,7 +1,7 @@
 name: go_router
 description: A declarative router for Flutter based on Navigation 2 supporting
   deep linking, data-driven routes and more
-version: 5.0.0
+version: 5.0.1
 repository: https://github.com/flutter/packages/tree/main/packages/go_router
 issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+go_router%22
 
diff --git a/packages/go_router/test/configuration_test.dart b/packages/go_router/test/configuration_test.dart
index a01f7d1..61f769f 100644
--- a/packages/go_router/test/configuration_test.dart
+++ b/packages/go_router/test/configuration_test.dart
@@ -333,6 +333,42 @@
         );
       },
     );
+    test('does not throw when ShellRoute is the child of another ShellRoute',
+        () {
+      final GlobalKey<NavigatorState> root =
+          GlobalKey<NavigatorState>(debugLabel: 'root');
+      RouteConfiguration(
+        routes: <RouteBase>[
+          ShellRoute(
+            builder: _mockShellBuilder,
+            routes: <RouteBase>[
+              ShellRoute(
+                builder: _mockShellBuilder,
+                routes: <GoRoute>[
+                  GoRoute(
+                    path: '/a',
+                    builder: _mockScreenBuilder,
+                  ),
+                ],
+              ),
+              GoRoute(
+                path: '/b',
+                builder: _mockScreenBuilder,
+              ),
+            ],
+          ),
+          GoRoute(
+            path: '/c',
+            builder: _mockScreenBuilder,
+          ),
+        ],
+        redirectLimit: 10,
+        topRedirect: (BuildContext context, GoRouterState state) {
+          return null;
+        },
+        navigatorKey: root,
+      );
+    });
   });
 
   test(
@@ -390,35 +426,6 @@
     },
   );
 
-  test('throws when ShellRoute contains a ShellRoute', () {
-    final GlobalKey<NavigatorState> root =
-        GlobalKey<NavigatorState>(debugLabel: 'root');
-    expect(
-      () {
-        RouteConfiguration(
-          navigatorKey: root,
-          routes: <RouteBase>[
-            ShellRoute(routes: <RouteBase>[
-              ShellRoute(
-                routes: <RouteBase>[
-                  GoRoute(
-                    path: '/a',
-                    builder: _mockScreenBuilder,
-                  ),
-                ],
-              ),
-            ]),
-          ],
-          redirectLimit: 10,
-          topRedirect: (BuildContext context, GoRouterState state) {
-            return null;
-          },
-        );
-      },
-      throwsAssertionError,
-    );
-  });
-
   test('throws when ShellRoute contains a GoRoute with a parentNavigatorKey',
       () {
     final GlobalKey<NavigatorState> root =
