diff --git a/src/__tests__/vue-router.js b/src/__tests__/vue-router.js
index f577e79..abbd1b2 100644
--- a/src/__tests__/vue-router.js
+++ b/src/__tests__/vue-router.js
@@ -1,5 +1,6 @@
 import '@testing-library/jest-dom'
 import {render, fireEvent} from '@testing-library/vue'
+import VueRouter from 'vue-router'
 
 import App from './components/Router/App.vue'
 import Home from './components/Router/Home.vue'
@@ -32,3 +33,15 @@ test('setting initial route', () => {
 
   expect(getByTestId('location-display')).toHaveTextContent('/about')
 })
+
+test('can render with an instantiated Vuex store', async () => {
+  // Instantiate a router with only one route
+  const instantiatedRouter = new VueRouter({
+    routes: [{path: '/special-path', component: Home}],
+  })
+
+  render(App, {routes: instantiatedRouter}, (vue, store, router) => {
+    expect(router.getRoutes()).toHaveLength(1)
+    expect(router.getRoutes()[0].path).toEqual('/special-path')
+  })
+})
diff --git a/src/render.js b/src/render.js
index cd8f913..ec2b6db 100644
--- a/src/render.js
+++ b/src/render.js
@@ -39,7 +39,7 @@ function render(
     const VueRouter = requiredRouter.default || requiredRouter
     localVue.use(VueRouter)
 
-    router = new VueRouter({routes})
+    router = routes instanceof VueRouter ? routes : new VueRouter({routes})
   }
 
   if (configurationCb && typeof configurationCb === 'function') {
diff --git a/types/index.d.ts b/types/index.d.ts
index cedc534..8d612ab 100644
--- a/types/index.d.ts
+++ b/types/index.d.ts
@@ -41,7 +41,7 @@ export interface RenderOptions<V extends Vue, S = {}>
   extends Omit<ThisTypedMountOptions<V>, 'store' | 'props'> {
   props?: object
   store?: StoreOptions<S>
-  routes?: RouteConfig[]
+  routes?: RouteConfig[] | Router
   container?: Element
   baseElement?: Element
 }
diff --git a/types/test.ts b/types/test.ts
index 7e04f39..9def089 100644
--- a/types/test.ts
+++ b/types/test.ts
@@ -1,5 +1,6 @@
 import Vue from 'vue'
 import Vuex from 'vuex'
+import VueRouter from 'vue-router'
 import {render, fireEvent, screen, waitFor} from '@testing-library/vue'
 
 declare const elem: Element
@@ -152,6 +153,14 @@ export function testInstantiatedStore() {
   })
 }
 
+export function testInstantiatedRouter() {
+  render(SomeComponent, {
+    routes: new VueRouter({
+      routes: [{path: '/', name: 'home', component: SomeComponent}],
+    }),
+  })
+}
+
 /*
 eslint
   testing-library/prefer-explicit-assert: "off",