##### SUMMARY
An invalid syntax within a jinja2 statement results in the statement being returned instead of an syntax error.

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
jinja2

##### ANSIBLE VERSION
<!--- Paste verbatim output from "ansible --version" between quotes -->
```paste below
ansible 2.9.0.dev0
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/home/user/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /home/user/PycharmProjects/ansible-2/lib/ansible
  executable location = /home/user/PycharmProjects/ansible-2/bin/ansible
  python version = 3.7.3 (default, Mar 26 2019, 21:43:19) [GCC 8.2.1 20181127]
```

##### CONFIGURATION

##### OS / ENVIRONMENT

ArchLinux

##### STEPS TO REPRODUCE

```yaml
- name: Test
  hosts: localhost
  gather_facts: false
  become: false
  strategy: linear
  tasks:
    - debug:
        msg: "{{ foo | ipaddr('address')) }}"
```

##### EXPECTED RESULTS

Syntax error (two closing `)`-characters)

##### ACTUAL RESULTS

```paste below
ok: [localhost] => {
    "msg": "{{ foo | ipaddr('address')) }}"
}
```

@sivel 
The string inside of the {{ gets interpreted multiple times First by yaml.
    Then by python.  And finally by jinja2 as part of it's variable.  Because
    it is processed by both python and jinja2, the backslash escaped
    characters get unescaped twice.  This means that we'd normally have to use
    four backslashes to escape that.  This is painful for playbook authors as
    they have to remember different rules for inside vs outside of a jinja2
    expression (The backslashes outside of the "{{ }}" only get processed by
    yaml and python.  So they only need to be escaped once).  The following
    code fixes this by automatically performing the extra quoting of
    backslashes inside of a jinja2 expression.
    """
    if '\\' in data and '{{' in data:
        new_data = []
        d2 = jinja_env.preprocess(data)
        in_var = False
        for token in jinja_env.lex(d2):
            if token[1] == 'variable_begin':
                in_var = True
                new_data.append(token[2])
            elif token[1] == 'variable_end':
                in_var = False
                new_data.append(token[2])
            elif in_var and token[1] == 'string':
                
                new_data.append(token[2].replace('\\', '\\\\'))
            else:
                new_data.append(token[2])
        data = ''.join(new_data)
    return data
def is_template(data, jinja_env):