Experimental node-semver compliant range support
diff --git a/README.md b/README.md
index 4399639..e9a299b 100644
--- a/README.md
+++ b/README.md
@@ -85,6 +85,7 @@
     //valid
 }
 
+If a version has a prerelease tag (for example, 1.2.3-alpha.3) then it will only be allowed to satisfy comparator sets if at least one comparator with the same [major, minor, patch] tuple also has a prerelease tag.
 ```
 
 Example
diff --git a/range.go b/range.go
index ab5778b..955b631 100644
--- a/range.go
+++ b/range.go
@@ -40,11 +40,10 @@
 		return Range(func(v Version) bool {
 			return len(v.Pre) == 0 && vr.c(v, vr.v)
 		})
-	} else {
-		return Range(func(v Version) bool {
-			return prMatch(vr.v, v) && vr.c(v, vr.v)
-		})
 	}
+	return Range(func(v Version) bool {
+		return prMatch(vr.v, v) && vr.c(v, vr.v)
+	})
 }
 
 // Range represents a range of versions.
@@ -196,8 +195,7 @@
 // When checking prerelease ranges, we want to make sure we're
 // only matching against ranges with same [major, minor, patch]
 func prMatch(v, o Version) bool {
-	return len(o.Pre) == 0 || (
-		v.Major == o.Major &&
+	return len(o.Pre) == 0 || (v.Major == o.Major &&
 		v.Minor == o.Minor &&
 		v.Patch == o.Patch)
 }
diff --git a/range_test.go b/range_test.go
index bb6b736..2b6dd60 100644
--- a/range_test.go
+++ b/range_test.go
@@ -315,6 +315,12 @@
 			{"1.4.2-beta.3", true},
 			{"1.4.3-beta", false},
 		}},
+		{">1.2.3-beta <1.2.5", []tv{
+			{"1.2.3", true},
+			{"1.2.3-beta.2", true},
+			{"1.2.3-gamma", true},
+			{"1.2.4-beta.2", false},
+		}},
 
 		// Simple Expression errors
 		{">>1.2.3", nil},