         vars = getVars str
 
         for {raw, name} in vars
+            [name, filters...] = name.split('|')
+
             value = context.get name
+
+            for filter in filters
+                value = Filter.get(filter) value 
+
             if value?
                 str = str.replace raw, value
             else

    DOM_REGEX                = /[^>]+>/
    BINDING_REGEX            = /\s(data\-[\w\d\-]+)/gim
    SUBSTITUTION_REGEX       = /#\{(.*?)\}/g
    BINDINGS                 = []
    INTERPOLATION_ATTRIBUTES = ['title', 'style', 'class', 'alt', 'id', 'href']

    class Template

            for {name, raw} in @vars
                context.watch name, => @substitute context
            @substitute context

    class Filter
        # Apply transformation to variables coming from the context.
        # Works very similar to bindings.
        @bind: (name, fn)->
            FILTERS[name] = fn
        
        @get: (name)->
            FILTERS[name]

    Filter.bind 'urlize', (text)->
        re = /(https*:\/\/[^\s]+)/g
        text.replace(re, """<a href="$1" target="_blank" rel="nofollow">$1</a>""")


            
    class Binding
