title: BeautifulSoup not properly parsing script text/template
body: <p>I have a fairly complex template script that BeautifulSoup4 isn't understanding for some reason. As you can see below, BS4 is only parsing partially into the tree before giving up. Why is this and is there a way to fix it?</p>
  
  <pre><code>&gt;&gt;&gt; from bs4 import BeautifulSoup
  &gt;&gt;&gt; html = """&lt;script id="scriptname" type="text/template"&gt;&lt;section class="sectionname"&gt;&lt;header&gt;&lt;h1&gt;Test&lt;/h1&gt;&lt;/header&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt;Title&lt;/th&gt;&lt;td class="class"&gt;&lt;/td&gt;&lt;th&gt;Title&lt;/th&gt;&lt;td class="class"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;Title&lt;/th&gt;&lt;td class="class"&gt;&lt;/td&gt;&lt;th&gt;Another row&lt;/th&gt;&lt;td class="checksum"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/section&gt;&lt;/script&gt; Other stuff I want to stay"""
  &gt;&gt;&gt; soup = BeautifulSoup(html)
  &gt;&gt;&gt; soup.findAll('script')
  [&lt;script id="scriptname" type="text/template"&gt;&lt;section class="sectionname"&gt;&lt;header&gt;&lt;h1&gt;Test&lt;/script&gt;]
  </code></pre>
  
  <p>Edit: on further testing, for some reason it appears that BS3 is able to parse this correctly:</p>
  
  <pre><code>&gt;&gt;&gt; from BeautifulSoup import BeautifulSoup as bs3
  &gt;&gt;&gt; soup = bs3(html)
  &gt;&gt;&gt; soup.script
  &lt;script id="scriptname" type="text/template"&gt;&lt;section class="sectionname"&gt;&lt;header&gt;&lt;h1&gt;Test&lt;/h1&gt;&lt;/header&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt;Title&lt;/th&gt;&lt;td class="class"&gt;&lt;/td&gt;&lt;th&gt;Title&lt;/th&gt;&lt;td class="class"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;Title&lt;/th&gt;&lt;td class="class"&gt;&lt;/td&gt;&lt;th&gt;Another row&lt;/th&gt;&lt;td class="checksum"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/section&gt;&lt;/script&gt;
  </code></pre>