code: def test_keywords_slot_filler_should_work_in_engine(self):
      # Given
      dataset_stream = io.StringIO(
          """
  ---
  type: intent
  name: SetLightColor
  utterances:
  - set the light to [color](blue) in the [room](kitchen)
  - please make the lights [color](red) in the [room](bathroom)"""
      )
      dataset = Dataset.from_yaml_files("en", [dataset_stream]).json
      intent = "SetLightColor"
      slot_filler_config = {
          "unit_name": "keyword_slot_filler",
          "lowercase": True,
      }
      parser_config = ProbabilisticIntentParserConfig(
          slot_filler_config=slot_filler_config
      )
      engine_config = NLUEngineConfig([parser_config])
      engine = SnipsNLUEngine(engine_config).fit(dataset, intent)
      text = "I want Red lights in the kitchen now"
  
      # When
      res = engine.parse(text)
  
      # Then
      expected_slots = [
          custom_slot(
              unresolved_slot(
                  match_range={START: 7, END: 10},
                  value="Red",
                  entity="color",
                  slot_name="color",
              ),
              "red",
          ),
          custom_slot(
              unresolved_slot(
                  match_range={START: 25, END: 32},
                  value="kitchen",
                  entity="room",
                  slot_name="room",
              )
          ),
      ]
      self.assertListEqual(expected_slots, res["slots"])
  
file_path: snips-nlu/snips_nlu/tests/test_keyword_slot_filler.py
imports: from __future__ import unicode_literals
  import io
  from snips_nlu import SnipsNLUEngine, NLUEngineConfig
  from snips_nlu.constants import START, END
  from snips_nlu.dataset import Dataset
  from snips_nlu.pipeline.configs import ProbabilisticIntentParserConfig
  from snips_nlu.result import unresolved_slot, custom_slot
  from snips_nlu.slot_filler.keyword_slot_filler import KeywordSlotFiller
  from snips_nlu.tests.utils import FixtureTest
label_desc: Use image node_id 2 for calling the TestKeywordSlotFiller obj's underlying member method code with example usage: obj.test_keywords_slot_filler_should_work_in_engine() without return types