diff --git a/README.md b/README.md
index 3b6ff6c..73b2b40 100644
--- a/README.md
+++ b/README.md
@@ -104,11 +104,7 @@
 
 ### Testing
 
- First install the necessary dependencies:
+ To build the test image and run unit tests
  ```
-  make test-build
- ```
- Then, run the unit tests:
- ```
-  make test-run
+  make test
  ```
diff --git a/scripts/lua/policies/backendRouting.lua b/scripts/lua/policies/backendRouting.lua
index c1efbad..646de94 100644
--- a/scripts/lua/policies/backendRouting.lua
+++ b/scripts/lua/policies/backendRouting.lua
@@ -41,7 +41,7 @@
     u.path = utils.concatStrings({u.path:sub(1, -16), u.path:sub(-16, -16) == '/' and '' or '/', gatewayPath})
     ngx.req.set_uri(u.path)
   else
-    ngx.req.set_uri(getUriPath(u.path))
+    ngx.req.set_uri(_M.getUriPath(u.path))
   end
   ngx.var.backendUrl = backendUrl
 
@@ -74,7 +74,7 @@
       u = url.parse(utils.concatStrings({'http://', dynamicBackend}))
     end
     if utils.tableContains(whitelist, u.host) then
-      ngx.req.set_uri(getUriPath(u.path))
+      ngx.req.set_uri(_M.getUriPath(u.path))
       -- Split the dynamicBackend url to get the query parameters in the exact order that it was passed in.
       -- Don't use u.query here because it returns the parameters in an unordered lua table.
       local split = {string.match(dynamicBackend, '([^?]*)?(.*)')}
@@ -91,10 +91,12 @@
   end
 end
 
-function getUriPath(backendPath)
+function _M.getUriPath(backendPath)
   local gatewayPath = ngx.unescape_uri(ngx.var.gatewayPath)
   gatewayPath = gatewayPath:gsub('-', '%%-')
+  local tenant = ngx.var.tenant:gsub('-', '%%-')
   local uri = string.gsub(ngx.var.request_uri, '?.*', '')
+  uri = uri:gsub('/api/' .. tenant, '')
   local _, j = uri:find(gatewayPath)
   local incomingPath = ((j and uri:sub(j + 1)) or nil)
   -- Check for backendUrl path
diff --git a/tests/scripts/lua/policies/backendRouting.lua b/tests/scripts/lua/policies/backendRouting.lua
index 06b812f..2f3e10b 100644
--- a/tests/scripts/lua/policies/backendRouting.lua
+++ b/tests/scripts/lua/policies/backendRouting.lua
@@ -28,17 +28,29 @@
   end)
 
   it('should work without override', function()
-    ngx.var.request_uri = "/api/23bc46b1-71f6-4ed5-8c54-816aa4f8c502/hello/world"
-    backendRouting.setRoute("https://localhost:3233/api/v1/web/guest/default/hello2.json", "hello/world")
+    ngx.var.gatewayPath = 'hello/world'
+    ngx.var.tenant = '23bc46b1-71f6-4ed5-8c54-816aa4f8c502'
+    ngx.var.request_uri = '/api/' .. ngx.var.tenant .. '/' .. ngx.var.gatewayPath
+    backendRouting.setRoute("https://localhost:3233/api/v1/web/guest/default/hello2.json", ngx.var.gatewayPath)
     assert.are.same(ngx.var.upstream, 'https://localhost:3233')
     assert.are.same(ngx.var.backendUrl, 'https://localhost:3233/api/v1/web/guest/default/hello2.json')
   end)
 
   it('should work with override', function()
-      ngx.var.request_uri = "/api/23bc46b1-71f6-4ed5-8c54-816aa4f8c502/hello/world"
-      backendRouting.setRouteWithOverride("https://localhost:3233/api/v1/web/guest/default/hello2.json", "hello/world",
-         "http://172.0.0.1:3456")
-      assert.are.same(ngx.var.upstream, 'http://172.0.0.1:3456')
-      assert.are.same(ngx.var.backendUrl, 'http://172.0.0.1:3456/api/v1/web/guest/default/hello2.json')
-    end)
+    ngx.var.gatewayPath = 'hello/world'
+    ngx.var.tenant = '23bc46b1-71f6-4ed5-8c54-816aa4f8c502'
+    ngx.var.request_uri = '/api/' .. ngx.var.tenant .. '/' .. ngx.var.gatewayPath
+    backendRouting.setRouteWithOverride("https://localhost:3233/api/v1/web/guest/default/hello2.json", ngx.var.gatewayPath,
+       "http://172.0.0.1:3456")
+    assert.are.same(ngx.var.upstream, 'http://172.0.0.1:3456')
+    assert.are.same(ngx.var.backendUrl, 'http://172.0.0.1:3456/api/v1/web/guest/default/hello2.json')
+  end)
+
+  it('should match URI properly, ignoring API tenant base path', function()
+    ngx.var.gatewayPath = 'api'
+    ngx.var.tenant = '23bc46b1-71f6-4ed5-8c54-816aa4f8c502'
+    ngx.var.request_uri = '/api/' .. ngx.var.tenant .. '/' .. ngx.var.gatewayPath
+    actual = backendRouting.getUriPath('/api')
+    assert.are.same(actual, '/api')
+  end)
 end)
