SLING-9180 Wrong regions reported when API Regions removes a candidate
diff --git a/src/main/java/org/apache/sling/feature/apiregions/impl/ResolverHookImpl.java b/src/main/java/org/apache/sling/feature/apiregions/impl/ResolverHookImpl.java
index 3b9279c..2164a86 100644
--- a/src/main/java/org/apache/sling/feature/apiregions/impl/ResolverHookImpl.java
+++ b/src/main/java/org/apache/sling/feature/apiregions/impl/ResolverHookImpl.java
@@ -283,19 +283,13 @@
             return Collections.emptyList();
 
         List<String> res = new ArrayList<>();
-        boolean found = false;
         for (String region : regions) {
             Set<String> packages = regionPackageMap.get(region);
             if (packages == null)
                 continue;
 
-            if (found) {
-                // Since later regions inherit from earlier ones, if the package has been found before
-                // it also applies to this region.
+            if (packages.contains(packageName)) {
                 res.add(region);
-            } else if (packages.contains(packageName)) {
-                res.add(region);
-                found = true;
             }
         }
         return res;
diff --git a/src/test/java/org/apache/sling/feature/apiregions/impl/ResolverHookImplTest.java b/src/test/java/org/apache/sling/feature/apiregions/impl/ResolverHookImplTest.java
index fcc86e8..9768cdf 100644
--- a/src/test/java/org/apache/sling/feature/apiregions/impl/ResolverHookImplTest.java
+++ b/src/test/java/org/apache/sling/feature/apiregions/impl/ResolverHookImplTest.java
@@ -472,6 +472,38 @@
     }
 
     @Test
+    public void testMultipleRegionsNoneMatching() {
+        Map<Entry<String, Version>, List<String>> bsnvermap = new HashMap<>();
+        bsnvermap.put(new AbstractMap.SimpleEntry<String,Version>("bundle.1", new Version(1,0,0)),
+                Collections.singletonList("b1"));
+        bsnvermap.put(new AbstractMap.SimpleEntry<String,Version>("bundle.2", new Version(1,0,0)),
+                Collections.singletonList("b2"));
+
+        Map<String, Set<String>> bfmap = new HashMap<>();
+        bfmap.put("b1", Collections.singleton("f1"));
+        bfmap.put("b2", Collections.singleton("f2"));
+
+        Map<String, Set<String>> frmap = new HashMap<>();
+        frmap.put("f1", new HashSet<>(Arrays.asList(
+                RegionEnforcer.GLOBAL_REGION, "org.foo.blah")));
+        frmap.put("f2", new HashSet<>(Arrays.asList("org.foo.bar",
+                RegionEnforcer.GLOBAL_REGION, "org.foo.blah")));
+
+        Map<String, Set<String>> rpmap = new HashMap<>();
+        rpmap.put("org.foo.bar", Collections.singleton("org.test"));
+        rpmap.put(RegionEnforcer.GLOBAL_REGION, Collections.singleton("org.something"));
+        rpmap.put("org.foo.blah", Collections.singleton("org.something"));
+
+        ResolverHookImpl rh = new ResolverHookImpl(bsnvermap, bfmap, frmap, rpmap, Collections.emptySet());
+
+        BundleRequirement req0 = mockRequirement("b1", bsnvermap);
+        BundleCapability cap0 = mockCapability("org.test", "b2", bsnvermap);
+        List<BundleCapability> candidates0 = new ArrayList<>(Arrays.asList(cap0));
+        rh.filterMatches(req0, candidates0);
+        assertEquals(Collections.emptyList(), candidates0);
+    }
+
+    @Test
     public void testGetRegionsForPackage() {
         Set<String> regions = new HashSet<>(Arrays.asList("r1", "r2", "r3"));
         Map<String, Set<String>> featureRegionMap = Collections.singletonMap("f2", regions);
@@ -492,10 +524,8 @@
         assertEquals(Collections.emptyList(), rh.getRegionsForPackage(null, "f2"));
         assertEquals(Collections.emptyList(), rh.getRegionsForPackage("org.foo", "f2"));
 
-        assertEquals(Collections.singletonList("r3"),
-            rh.getRegionsForPackage("org.foo.bar", "f2"));
-        assertEquals(Arrays.asList("r2", "r3"),
-            rh.getRegionsForPackage("a.b.c", "f2"));
+        assertEquals(Collections.singletonList("r3"), rh.getRegionsForPackage("org.foo.bar", "f2"));
+        assertEquals(Collections.singletonList("r2"), rh.getRegionsForPackage("a.b.c", "f2"));
     }
 
     @Test