code: function removeExplorerBrElementsAfterBlocks(html) {
          // Only filter word specific content
          if (!WordFilter.isWordContent(html)) {
            return html;
          }
  
          // Produce block regexp based on the block elements in schema
          var blockElements = [];
  
          Tools.each(editor.schema.getBlockElements(), function (block, blockName) {
            blockElements.push(blockName);
          });
  
          var explorerBlocksRegExp = new RegExp(
            '(?:<br>&nbsp;[\\s\\r\\n]+|<br>)*(<\\/?(' + blockElements.join('|') + ')[^>]*>)(?:<br>&nbsp;[\\s\\r\\n]+|<br>)*',
            'g'
          );
  
          // Remove BR:s from: <BLOCK>X</BLOCK><BR>
          html = Utils.filter(html, [
            [explorerBlocksRegExp, '$1']
          ]);
  
          // IE9 also adds an extra BR element for each soft-linefeed and it also adds a BR for each word wrap break
          html = Utils.filter(html, [
            [/<br><br>/g, '<BR><BR>'], // Replace multiple BR elements with uppercase BR to keep them intact
            [/<br>/g, ' '],            // Replace single br elements with space since they are word wrap BR:s
            [/<BR><BR>/g, '<br>']      // Replace back the double brs but into a single BR
          ]);
  
          return html;
        }
docs: Removes BR elements after block elements. IE9 has a nasty bug where it puts a BR element after each
  block element when pasting from word. This removes those elements.
  
  This:
  <p>a</p><br><p>b</p>
  
  Becomes:
  <p>a</p><p>b</p>