title: rpart stops at root node and does not split further when there is an obvious information gain
body: <p>I am trying to use rpart to build a classification tree model.
  The test data frame is very simple containing only two boolean variables in 10 rows.
  The hidden logic is simple too: when x is FALSE, y must be FALSE.  When x is TRUE, y has 60% chance of being TRUE.
  So I would imagine rpart would do one split on x to increase node purity.  But it stays at root node and does not split at all. Anyone please advise?</p>
  
  <pre><code>&gt; df &lt;- data.frame(x=rep(c(FALSE,TRUE), each=5), y=c(rep(FALSE,7), rep(TRUE,3)))
  &gt; df
         x     y
  1  FALSE FALSE
  2  FALSE FALSE
  3  FALSE FALSE
  4  FALSE FALSE
  5  FALSE FALSE
  6   TRUE FALSE
  7   TRUE FALSE
  8   TRUE  TRUE
  9   TRUE  TRUE
  10  TRUE  TRUE
  &gt; rpart(y~x, method='class', data=df)
  n= 10 
  
  node), split, n, loss, yval, (yprob)
        * denotes terminal node
  
  1) root 10 3 FALSE (0.7000000 0.3000000) *
  </code></pre>