fixed a few bugs from the unittests

--HG--
branch : trunk
diff --git a/jinja2/filters.py b/jinja2/filters.py
index 633dbdf..2fc1b30 100644
--- a/jinja2/filters.py
+++ b/jinja2/filters.py
@@ -16,7 +16,7 @@
 except ImportError:
     itemgetter = lambda a: lambda b: b[a]
 from urllib import urlencode, quote
-from itertools import imap
+from itertools import imap, groupby
 from jinja2.utils import Markup, escape, pformat, urlize, soft_unicode
 from jinja2.runtime import Undefined
 
@@ -108,10 +108,7 @@
     result = []
     for key, value in d.iteritems():
         if value is not None and not isinstance(value, Undefined):
-            result.append(u'%s="%s"' % (
-                escape(env.to_unicode(key)),
-                escape(env.to_unicode(value), True)
-            ))
+            result.append(u'%s="%s"' % (escape(key), escape(value)))
     rv = u' '.join(
         u'%s="%s"' % (escape(key), escape(value))
         for key, value in d.iteritems()
@@ -386,7 +383,10 @@
     try:
         return int(value)
     except (TypeError, ValueError):
-        return default
+        try:
+            return int(float(value))
+        except (TypeError, ValueError):
+            return default
 
 
 def do_float(value, default=0.0):
@@ -400,11 +400,6 @@
         return default
 
 
-def do_string(value):
-    """Convert the value into an string."""
-    return soft_unicode(value)
-
-
 def do_format(value, *args, **kwargs):
     """
     Apply python string formatting on an object:
@@ -451,7 +446,7 @@
     If you pass it a second argument it's used to fill missing
     values on the last iteration.
     """
-    seq = list(seq)
+    seq = list(value)
     length = len(seq)
     items_per_slice = length // slices
     slices_with_extra = length % slices
@@ -599,7 +594,8 @@
     'wordcount':            do_wordcount,
     'int':                  do_int,
     'float':                do_float,
-    'string':               do_string,
+    'string':               soft_unicode,
+    'list':                 list,
     'urlize':               do_urlize,
     'format':               do_format,
     'trim':                 do_trim,