In Interest.matches_name used to match interests in the PITTable, added a check for minSuffixComponents, maxSuffixComponents and exclude.
This helps to call the correct closure callback.
diff --git a/js/testing/test-PIT-matching.html b/js/testing/test-PIT-matching.html
new file mode 100644
index 0000000..4ccac10
--- /dev/null
+++ b/js/testing/test-PIT-matching.html
@@ -0,0 +1,148 @@
+<?xml version = "1.0" encoding="utf-8" ?>

+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

+"DTD/xhtml1-strict.dtd">

+<!-- 

+	See COPYING for copyright and distribution information.

+-->

+<html xmlns = "http://www.w3.org/1999/xhtml">

+<meta charset="UTF-8"/>

+

+<head>

+	<title>NDN PIT Matching</title>

+	

+	<script type="text/javascript" src="../Helper.js"></script>

+

+	<script type="text/javascript">

+		var ndn = new NDN({verify:false});

+        

+        var AsyncGetClosure = function AsyncGetClosure(target) {

+        	// Inherit from Closure.

+			Closure.call(this);

+            

+            this.target = target;

+		};

+		

+		AsyncGetClosure.prototype.upcall = function(kind, upcallInfo) {

+			if (kind == Closure.UPCALL_CONTENT || kind == Closure.UPCALL_CONTENT_UNVERIFIED) {

+				document.getElementById(this.target).innerHTML = 

+                    DataUtils.toString(upcallInfo.contentObject.content);

+                return Closure.RESULT_OK;

+            }

+            else

+                return Closure.RESULT_ERR;

+		};

+		

+        var name = new Name("/ndn/ucla.edu/apps/ndn-js-test/hello.txt");

+        

+        var interestSelector1 = new Interest();

+        interestSelector1.interestLifetime = 10000;

+        interestSelector1.minSuffixComponents = 3;

+        interestSelector1.maxSuffixComponents = 3;

+        

+        var interestSelector2 = new Interest();

+        interestSelector2.interestLifetime = 10000;

+        interestSelector2.minSuffixComponents = 4;

+        interestSelector2.maxSuffixComponents = 4;

+

+        var interestSelector3 = new Interest();

+        interestSelector3.interestLifetime = 10000;

+        interestSelector3.exclude = new Exclude([Exclude.ANY, DataUtils.toNumbersFromString("zzzzzz")]);

+

+        var interestSelector4 = new Interest();

+        interestSelector4.interestLifetime = 10000;

+        interestSelector4.exclude = new Exclude([DataUtils.toNumbersFromString("zzzzzz"), Exclude.ANY]);

+

+		function run() {

+            ndn.onopen = function() {

+              for (var i = 0; i < 10; ++i) {

+                // "col1Content0" is already fetched.

+                if (i != 0)

+                    ndn.expressInterest(name, new AsyncGetClosure("col1Content" + i), interestSelector1);

+                ndn.expressInterest(name, new AsyncGetClosure("col2Content" + i), interestSelector2);

+                ndn.expressInterest(name, new AsyncGetClosure("col3Content" + i), interestSelector3);

+                ndn.expressInterest(name, new AsyncGetClosure("col4Content" + i), interestSelector4);

+              }

+              // For testing, make sure we don't just process in the order returned.

+              DataUtils.shuffle(NDN.PITTable);

+            };

+            

+			ndn.expressInterest(name, new AsyncGetClosure("col1Content0"), interestSelector1);

+		}

+	</script>	

+</head>

+<body >

+  <button id="runBtn" onclick="run()">Run</button>

+  <table style="text-align: left;" border="1" cellpadding="2" cellspacing="0">

+  <tbody>

+    <tr>

+      <td style="vertical-align: top;">minSuffixComponents=3,<br/>maxSuffixComponents=3<br/>should be:<br/>

+                                       hello</td>

+      <td style="vertical-align: top;">minSuffixComponents=4,<br/>maxSuffixComponents=4<br/>should be:<br/>

+                                       hello world</td>

+      <td style="vertical-align: top;">exclude=*,zzzzzz<br/><br/>should be:<br/>hello</td>

+      <td style="vertical-align: top;">exclude=zzzzzz,*<br/><br/>should be:<br/>hello world</td>

+    </tr>

+    <tr>

+      <td style="vertical-align: top;"><div id="col1Content0"/></td>

+      <td style="vertical-align: top;"><div id="col2Content0"/></td>

+      <td style="vertical-align: top;"><div id="col3Content0"/></td>

+      <td style="vertical-align: top;"><div id="col4Content0"/></td>

+    </tr>

+    <tr>

+      <td style="vertical-align: top;"><div id="col1Content1"/></td>

+      <td style="vertical-align: top;"><div id="col2Content1"/></td>

+      <td style="vertical-align: top;"><div id="col3Content1"/></td>

+      <td style="vertical-align: top;"><div id="col4Content1"/></td>

+    </tr>

+    <tr>

+      <td style="vertical-align: top;"><div id="col1Content2"/></td>

+      <td style="vertical-align: top;"><div id="col2Content2"/></td>

+      <td style="vertical-align: top;"><div id="col3Content2"/></td>

+      <td style="vertical-align: top;"><div id="col4Content2"/></td>

+    </tr>

+    <tr>

+      <td style="vertical-align: top;"><div id="col1Content3"/></td>

+      <td style="vertical-align: top;"><div id="col2Content3"/></td>

+      <td style="vertical-align: top;"><div id="col3Content3"/></td>

+      <td style="vertical-align: top;"><div id="col4Content3"/></td>

+    </tr>

+    <tr>

+      <td style="vertical-align: top;"><div id="col1Content4"/></td>

+      <td style="vertical-align: top;"><div id="col2Content4"/></td>

+      <td style="vertical-align: top;"><div id="col3Content4"/></td>

+      <td style="vertical-align: top;"><div id="col4Content4"/></td>

+    </tr>

+    <tr>

+      <td style="vertical-align: top;"><div id="col1Content5"/></td>

+      <td style="vertical-align: top;"><div id="col2Content5"/></td>

+      <td style="vertical-align: top;"><div id="col3Content5"/></td>

+      <td style="vertical-align: top;"><div id="col4Content5"/></td>

+    </tr>

+    <tr>

+      <td style="vertical-align: top;"><div id="col1Content6"/></td>

+      <td style="vertical-align: top;"><div id="col2Content6"/></td>

+      <td style="vertical-align: top;"><div id="col3Content6"/></td>

+      <td style="vertical-align: top;"><div id="col4Content6"/></td>

+    </tr>

+    <tr>

+      <td style="vertical-align: top;"><div id="col1Content7"/></td>

+      <td style="vertical-align: top;"><div id="col2Content7"/></td>

+      <td style="vertical-align: top;"><div id="col3Content7"/></td>

+      <td style="vertical-align: top;"><div id="col4Content7"/></td>

+    </tr>

+    <tr>

+      <td style="vertical-align: top;"><div id="col1Content8"/></td>

+      <td style="vertical-align: top;"><div id="col2Content8"/></td>

+      <td style="vertical-align: top;"><div id="col3Content8"/></td>

+      <td style="vertical-align: top;"><div id="col4Content8"/></td>

+    </tr>

+    <tr>

+      <td style="vertical-align: top;"><div id="col1Content9"/></td>

+      <td style="vertical-align: top;"><div id="col2Content9"/></td>

+      <td style="vertical-align: top;"><div id="col3Content9"/></td>

+      <td style="vertical-align: top;"><div id="col4Content9"/></td>

+    </tr>

+  </tbody>

+  </table>	

+</body>

+</html>