user: ### Background

We **all** know about "balancing parentheses" (plus brackets, braces and chevrons) and even balancing characters that are identical.  

Read that last sentence again, I balanced different characters and identical characters twice and you didn't even notice... :)

### Kata
Your challenge in this kata is to write a piece of code to validate that a supplied string is balanced.

You must determine if all that is open is then closed, and nothing is closed which is not already open!

You will be given a string to validate, and a second string, where each pair of characters defines an opening and closing sequence that needs balancing.

You may assume that the second string always has an even number of characters.

### Example
```python
# In this case '(' opens a section, and ')' closes a section
is_balanced("(Sensei says yes!)", "()")       # => True
is_balanced("(Sensei says no!", "()")         # => False

# In this case '(' and '[' open a section, while ')' and ']' close a section
is_balanced("(Sensei [says] yes!)", "()[]")   # => True
is_balanced("(Sensei [says) no!]", "()[]")    # => False

# In this case a single quote (') both opens and closes a section
is_balanced("Sensei says 'yes'!", "''")       # => True
is_balanced("Sensei say's no!", "''")         # => False
```

Answer: {"fn_name": "is_balanced", "inputs": [["(Sensei says yes!)", "()"], ["(Sensei says no!", "()"], ["(Sensei [says] yes!)", "()[]"], ["(Sensei [says) no!]", "()[]"], ["Sensei says -yes-!", "--"], ["Sensei -says no!", "--"], ["Hello Mother can you hear me?", "()"], ["(Hello Mother can you hear me?)", "()"], ["(Hello Mother can you hear me?", ""], ["(Hello Mother can you hear me?", "()"], ["(Hello Mother can you hear me?))", "()"], [")Hello Mother can you hear me?", "()"], ["(Hello Mother can you hear me?)[Monkeys, in my pockets!!]", "()[]"], ["(Hello Mother can you hear me?)[Monkeys, in my pockets!!](Gosh!!)", "()[]"], ["Hello Mother can you hear me?)[Monkeys, in my pockets!!]", "()[]"], ["(Hello Mother can you hear me?[Monkeys, in my pockets!!]", "()[]"], ["(Hello Mother can you hear me?)Monkeys, in my pockets!!]", "()[]"], ["(Hello Mother can you hear me?)[Monkeys, in my pockets!!", "()[]"], ["((Hello))", "()"], ["(((Hello)))", "()"], ["((()Hello()))", "()"], ["((()Hello())", "()"], ["(()Hello()))", "()"], ["([{-Hello!-}])", "()[]{}"], ["([{([{Hello}])}])", "()[]{}"], ["([{-Hello!-})]", "()[]{}"], ["-Hello Mother can you hear me?-", "--"], ["-Hello Mother can you hear me?", "--"], ["Hello Mother can you hear me?-", "--"], ["-abcd-e@fghi@", "--@@"], ["abcd-e@fghi@", "--@@"], ["-abcde@fghi@", "--@@"], ["-abcd-efghi@", "--@@"], ["-abcd-e@fghi", "--@@"], ["-a@b@cd@e@fghi-", "--@@"], ["-ab@cd@e@fghi-", "--@@"], ["-a@bcd@e@fghi-", "--@@"], ["-a@b@cde@fghi-", "--@@"], ["-a@b@cd@efghi-", "--@@"], ["a@b@cd@e@fghi-", "--@@"], ["-a@b@cd@e@fghi", "--@@"]], "outputs": [[true], [false], [true], [false], [true], [false], [true], [true], [true], [false], [false], [false], [true], [true], [false], [false], [false], [false], [true], [true], [true], [false], [false], [true], [true], [false], [true], [false], [false], [true], [false], [false], [false], [false], [true], [false], [false], [false], [false], [false], [false]]}